package session.stateless.SCM;

import javaclass.ProductType;
import entity.SCM.Batch;
import entity.SCM.MaterialLineItem;
import entity.SCM.ProductBalance;
import entity.SCM.ProductLineItem;
import entity.RawMaterial;
import java.util.Date;
import java.util.List;
import javax.ejb.Local;

@Local
public interface BatchBeanLocal {
    
    public Long createProductBatch( ProductType productType, Date expiryDate, Long quantity, String location);
    
    public List<Batch> getProductBatch();
    
    public Long createMaterialBatch( String productType, Date expiryDate, Long quantity, String location);
    
    public List<Batch> getMaterialBatch();
    
    public List<ProductBalance> getProduct();
    
    public List<RawMaterial> getMaterial();

    public List<MaterialLineItem> allocateMaterialBatch(Long materialLineId);
    
    public List<ProductLineItem> allocateProductBatch(Long productLineId);

    public List<MaterialLineItem> getMaterialLineItem(Long materialRequestId);

    public List<ProductLineItem> getProductLineItem(Long pickingOrderId);

    public boolean completePickingOrder(Long deliveryOrderId);

    public boolean processMaterialRequest(Long requestId);

    public ProductBalance getProductBalance(ProductType productType);

    public List<String> getMaterialType();

    public RawMaterial findRawMaterial(String materialType);
    
}

